package com.huluobo.a2107kotlinshopping.base

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.databinding.DataBindingUtil
import androidx.databinding.ViewDataBinding

/**
 *  Created by LC on 2023/11/13.
 *  lateinit 被标记的对象可以进行延迟初始化
 *  延迟初始化的意义在于,声明时可以不赋空值,在之后运行的过程中,可以进行赋值
 */
abstract class BaseMVVMActivity<VDB : ViewDataBinding> : AppCompatActivity() {
    protected lateinit var dataBinding: VDB

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        //1.绑定视图
        dataBinding = DataBindingUtil.setContentView(this, getLayoutId())
        //2.初始化控件
        initView()
        //3.初始化数据
        initData()
    }

    abstract fun initData()

    abstract fun initView()

    abstract fun getLayoutId(): Int
}